<template>
    <!-- 
    <b-modal ref="my-modal" hide-footer title="Using Component Methods">
     <div class="d-block text-center">
       <h3>Hello From My Modal!</h3>
     </div>
     <b-button class="mt-3" variant="outline-danger" block @click="hideModal">Close Me</b-button>
     <b-button class="mt-2" variant="outline-warning" block @click="toggleModal">Toggle Me</b-button>
   </b-modal> 
    -->
    <!--
        body-class="modalStyle" 表示样式
        size="lg" 表示模态窗口大小 xl,lg,sm,full
        hide-footer 表示隐藏底部按钮
        hide-header 表示隐藏头部内容
        no-close-on-backdrop 表示鼠标点击背景不可关闭
        hide-header-close 表示隐藏头部关闭按钮
        centered 居中
        ok-title=“确定” 
        cancel-title=取消
        @ok="handleOk" 
        @cancel="handleCancel"
        scrollable 滚动条
        hide-backdrop 隐藏背景
        wrapClassName="ant-modal-cust-warp" 
        style="top:5%;height: 85%;overflow-y: hidden" 样式
    -->
    <b-modal ref="my-modal" size="lg" title="编辑子系统" scrollable no-close-on-backdrop>
        <div class="d-block text-center">
            <!--begin::div-->
            <div class="m-form m-form--fit m-form--label-align-left m-form--group-seperator-dashed">
                <div class="m-portlet__body">
                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">平台标记</label>
                        <div class="col-lg-3">
                            <input class="form-control" type="text" maxlength="100" v-model="oauthSysModeForm.mode" placeholder="请输入">
                        </div>
                        <label class="col-lg-3 col-form-label" style="color: red">唯一标识</label>
                    </div>
                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;称</label>
                        <div class="col-lg-3">
                            <input class="form-control" type="text" maxlength="200" v-model="oauthSysModeForm.name" placeholder="请输入">
                        </div>
                    </div>
                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">状&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;态</label>
                        <div class="col-lg-2">
                            <el-select maxlength="20" v-model="oauthSysModeForm.status" placeholder="请选择">
                                <el-option
                                    v-for="item in [{value:0,label:'正常'},{value:1,label:'冻结'}]"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </div>
                    </div>
                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">秘&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;钥</label>
                        <div class="col-lg-3">
                            <el-select v-model="oauthSysModeForm.keyInfoId" placeholder="请选择">
                                <el-option
                                v-for="item in keyInfoList"
                                :key="item.id"
                                :label="item.name"
                                :value="item.id">
                                </el-option>
                            </el-select>
                        </div>
                        <label class="col-lg-3 col-form-label" style="color: red">应用于该平台所属秘钥key</label>
                    </div>
                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">图&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标</label>
                        <div class="col-lg-4">
                            <b-input-group>
                                <input class="form-control placeholder-no-fix" type="text" placeholder="请输入" v-model="oauthSysModeForm.icon"/>
                                <b-input-group-append>
                                <b-button variant="outline-secondary" v-if="null != oauthSysModeForm.icon && '' != oauthSysModeForm.icon">
                                    <i class="icon-xl " :class="oauthSysModeForm.icon"></i>
                                </b-button>
                                <b-button variant="outline-secondary" @click="selectIcon">
                                    从图标库选择
                                </b-button>
                                </b-input-group-append>
                            </b-input-group>
                        </div>
                    </div>

                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</label>
                        <div class="col-lg-6">
                            <input class="form-control" v-model="oauthSysModeForm.url">
                        </div>
                        <label class="col-lg-3 col-form-label" style="color: red">默认缺省（可作为链接地址）</label>
                    </div>
                    <div class="form-group m-form__group row">
                        <label class="col-lg-2 col-form-label">排序编号</label>
                        <div class="col-lg-2">
                            <el-input-number 
                            v-model="oauthSysModeForm.sort" 
                            maxlength="10" 
                            style="width:100px;" 
                            controls-position="right"
                             @change="handleChange" 
                             :min="0" 
                             :max="9999">
                            </el-input-number>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <template slot="modal-footer">
            <!--自定义按钮-->
            <button type="button" class="btn btn-light-danger font-weight-bold mr-2" block @click="hideModal">
                <i class="icon-xl fa fa-times"></i>取消
            </button> 
            <button type="button" class="btn btn-light-success font-weight-bold mr-2" @click="updateOauthSysMode">
                <i class="icon-xl fas fa-save"></i> 保存
            </button>
            <IconSelect ref="IconSelectRef" @change="setIcon"></IconSelect>
        </template>
    </b-modal>        
</template>
<script>
import apiUtil from "@/core/util/apiUtil.js"; 
import IconSelect from "@/components/icon-select.vue";
import { handleNotify,handleAlert,handleConfirm,showWating,closeWating} from "@/core/util/jehcUtil.js";
export default {
    data(){
        return {    
            oauthSysModeForm:{
                id:"",
                mode:"",
                name:"",
                status: 0,
                keyInfoId:"",
                icon:"",
                url:'',
                sort:0
            },
            keyInfoList:[]
        }
    },
    components: {
        IconSelect,
    },
    watch: {
    },
    mounted() {
        
    },
    methods: {
        handleChange(value) {
            console.log(value);
        },
        updateOauthSysMode(){
            if(this.oauthSysModeForm.mode === ""){
                handleAlert("请输入平台标记", "warning", 3)
                return;
            }
            if(this.oauthSysModeForm.name === ""){
                handleAlert("请输入名称", "warning", 3)
                return;
            }
            if(this.oauthSysModeForm.status === ""){
                handleAlert("请选择状态", "warning", 3)
                return;
            }
            if(this.oauthSysModeForm.keyInfoId === ""){
                handleAlert("请选择密钥", "warning", 3)
                return;
            }
            // 保存前提示
            this.$confirm("确定保存?", "提示", {type: "warning",}).then(() => {
                apiUtil.update(process.env.VUE_APP_OAUTH_API+"/oauthSysMode/update", this.oauthSysModeForm).then(({ data }) => {
                    if(data.success){
                        handleAlert("编辑成功", "success", 3);
                        this.hideModal();//关闭窗体
                        this.$emit("change",data);//组件传值，即向父级模态框中传递值，采用change方式，目标刷新主列表使用
                    }else {
                        handleAlert("编辑失败", "error", 3);
                    }            
                });
            }).catch(()=>{});//注意这里，这里是重点！！！;   
        },
        showModal(id) {
            this.restForm();
            this.$refs['my-modal'].show();
            this.getOauthSysModeDetail(id)
        },
        hideModal() {
            this.$refs['my-modal'].hide()
        },
        toggleModal() {
            // 当模态已隐藏时，我们传递要返回焦点的按钮的ID
            this.$refs['my-modal'].toggle('#toggle-btn')
        },
        restForm(){
            //重置
            Object.assign(this.$data.oauthSysModeForm, this.$options.data().oauthSysModeForm);
        },
        initKeyInfoList(){
            let params = {};
            apiUtil.query(process.env.VUE_APP_OAUTH_API+"/oauthKeyInfo/listAll", params).then(({ data }) => {
                this.keyInfoList = data.data;
            });
        },
        getOauthSysModeDetail(id){
            apiUtil.get(process.env.VUE_APP_OAUTH_API+"/oauthSysMode/get/"+id).then(({ data }) => {
                this.initKeyInfoList();
                this.oauthSysModeForm = data.data;                      
            });
        },
        selectIcon(){
            this.$refs.IconSelectRef.showModal()
        },
        setIcon(data){
            this.oauthSysModeForm.icon = data.icon;
        },
   }
}
</script>